﻿/*
============================================================================
文件名    ： AccountHelper.cs
完全限定名： M_NET.BLL.AccountHelper
作者      ： 陈存腾
创建时间  ： 2012-03-12
修改时间  ： 
版本      ：
说明      ： 用于账户信息逻辑处理
============================================================================
*/

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;
using M_NET.Common;
using M_NET.DAL;
using M_NET.Model;

namespace M_NET.BLL
{
    public class AccountHelper
    {
        /// <summary>
        /// 当前已系统用户
        /// </summary>
        public static Model.User CurrentUser = null;

        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="id">用户id</param>
        /// <param name="pwd">用户密码</param>
        /// <param name="ip">用户IP</param>
        /// <returns></returns>
        public EnumType.ResultState Login(string id, string pwd, string ip)
        {
            if (string.IsNullOrEmpty(id))
            {
                return EnumType.ResultState.帐号不能为空;
            }
            else if (string.IsNullOrEmpty(pwd))
            {
                return EnumType.ResultState.密码不能为空;
            }
            else
            {
                DataTable dataTableAccount;
                EnumType.ResultState result = AccountDB.LoginHelper(id, pwd, ip, out dataTableAccount);
                if (result == EnumType.ResultState.成功)
                {
                    // 通过登录验证，初始化 User.Current 对象
                    User.Current = new User(dataTableAccount);
                    // 获取用户扩展信息
                    result = AccountDB.UserinfoGetHelper(id, id, out dataTableAccount);
                    if (result == EnumType.ResultState.成功)
                    {
                        User.Current.AddInfo(dataTableAccount);
                    }
                }
                return result;
            }
        }


        /// <summary>
        /// 用户注册
        /// </summary>
        /// <param name="id">用户帐号</param>
        /// <param name="pwd">用户密码</param>
        /// <returns>操作结果</returns>
        private EnumType.ResultState Register(Model.User user, string pwd)
        {
            if (string.IsNullOrEmpty(user.ID))
            {
                return EnumType.ResultState.帐号不能为空;
            }
            else if (string.IsNullOrEmpty(pwd))
            {
                return EnumType.ResultState.密码不能为空;
            }
            else if (AccountDB.CheckID(user.ID) == 0)
            {
                return EnumType.ResultState.帐号已存在;
            }
            else
            {
                if (AccountDB.RegisterHelper(user.ID, pwd, HttpContext.Current.Request.ServerVariables["Remote_Addr"]))
                {
                    return EnumType.ResultState.成功;
                }
                return EnumType.ResultState.未知错误;
            }
        }

    }
}
